<?php



class Template{
	
	
	private static $applyTemplate=true;
	private static $renderer;
	private static $header;
	private static $footer;
	private static $menu;


	public static function prepare(){
		
		//on charge l'environnement de la page
		self::$header = file_get_contents('php/page/template/TpltHeader.php');
		self::$footer = file_get_contents('php/page/template/TpltFooter.php');
		if(Security::isConnected()){
			self::$menu = file_get_contents('php/page/template/TpltConnected.php');
		}
		else{
            Javascript::addFileScript('ajax_films.js',true);
			self::$menu = file_get_contents('php/page/template/TpltVisitor.php');
		}
		
		//Ensuite on place un event en fin de génération de page.
		//Il permettra à la page actuelle de générer son contenu et de reprendre la main ensuite.
		//C'est alors que l'on lancera la création complète de la page.
		register_shutdown_function('Template::generate');
	}
	
	
	public static function generate(){
        if(self::$renderer){
            $renderer=self::$renderer;
            $renderer::render();
        }
		elseif(self::$applyTemplate){
			//récupération du contenu spécifique à la page
			$contenu=ob_get_contents();
			ob_end_clean();
			
			//construction globale
			eval(' ?>'.self::$header.'<?php ');
			echo($contenu);
			eval(' ?>'.self::$footer.'<?php ');
		}
	}
	
	
    //utilisé par Pdf et SvcWeb :
    //permet de définir un gestionnaire de rendu.
	public static function setRenderer($renderer){
        self::$renderer=$renderer;
	}
	
	
	public static function desactivate(){
		self::$applyTemplate=false;
	}
	
	
	public static function getMenu(){
		eval(' ?>'.self::$menu.'<?php ');
	}
	
	
	public static function getTitle(){
		return Texte::toHtml(Main::getTitle());
	}
	
	
	public static function getMainTitle(){
		return Texte::toHtml(Properties::getValue('mainTitle'));
	}
	
	
	public static function getDevise(){
		$devise=Properties::getValue('devise');
		if(is_array($devise)){
			$temp='';
			foreach($devise as $ligne){
				$temp.=Texte::toHtml($ligne).'<br/>';
			}
			return $temp;
		}
		return Texte::toHtml($devise);
	}
	
	
	public static function showDebug(){
		return Properties::getValue('debugOnPage')=='1';
	}

	
}


?>